//-----------------------------------------------------------------------
// <copyright file="AssessmentResult.cs" company="Procure Development">
//     Copyright (c) Procure Development. All rights reserved.
// </copyright>
// <author>Victor Procure</author>
//-----------------------------------------------------------------------

using System;
using MongoDB.Bson;
using MongoDB.Bson.Serialization.Attributes;

namespace SManagement.Models
{
    /// <summary>
    /// An entity that includes information about a person's results from an
    /// assessment which may be for the entire assessment or one aspect of
    /// evaluation. The scoring method is defined by the related Assessment
    /// Subtest. The entity includes the score value and information about
    /// the score, such as a diagnostic statement.
    /// </summary>
    public class AssessmentResult
    {
        #region Instance Properties

        [BsonId]
        public ObjectId _id { get; set; }

        public string ScoreValue { get; set; }

        public ObjectId? RefScoreMetricTypeId { get; set; }

        public bool? PreliminaryIndicator { get; set; }

        public ObjectId? RefAssessmentPretestOutcomeId { get; set; }

        public ObjectId? NumberOfResponses { get; set; }

        public string DiagnosticStatement { get; set; }

        public string DiagnosticStatementSource { get; set; }

        public string DescriptiveFeedback { get; set; }

        public string DescriptiveFeedbackSource { get; set; }

        public string InstructionalRecommendation { get; set; }

        public bool? IncludedInAypCalculation { get; set; }

        public DateTime? DateUpdated { get; set; }

        public DateTime? DateCreated { get; set; }

        public ObjectId AssessmentFormSubtestId { get; set; }

        public ObjectId AssessmentRegistrationId { get; set; }

        public ObjectId? RefELOutcomeMeasurementLevelId { get; set; }

        public ObjectId? RefOutcomeTimePointId { get; set; }

        public DateTime? AssessmentResultDescriptiveFeedbackDateTime { get; set; }

        public decimal? AssessmentResultScoreStandardError { get; set; }

        public ObjectId? RefAssessmentResultDataTypeId { get; set; }

        public ObjectId? RefAssessmentResultScoreTypeId { get; set; }

        #endregion Instance Properties
}

}